

package com.scs.application.modules.settlement.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.scs.application.core.model.DataEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * 库存快照实体对象
 */
@TableName("stock_snapshot")
@Data
@EqualsAndHashCode(callSuper = false)
@ToString(callSuper = true)
@Accessors(chain = true)
public class StockSnapshot extends DataEntity implements Serializable {

    /** 期号 */
    @Length(max = 20, message = "期号长度必须介于 0 和 20 之间")
    private String periodNo;
    /* 医院商品ID */
    private String hospitalMaterialId;
    /** 医院ID */
    @NotNull(message = "医院ID不能为空")
    private String hospitalId;

    /** 医院名称 */
    @NotBlank(message = "医院名称不能为空")
    @Length(min = 1, max = 100, message = "医院名称长度必须介于 1 和 100 之间")
    private String hospitalName;

    /** 供应商ID */
    @NotNull(message = "供应商ID不能为空")
    private String supplierId;

    /** 供应商名称 */
    @NotBlank(message = "供应商名称不能为空")
    @Length(min = 1, max = 100, message = "供应商名称长度必须介于 1 和 100 之间")
    private String supplierName;

    /** 商品ID */
    @NotNull(message = "商品ID不能为空")
    private String materialId;

    /** 品规ID */
    @NotNull(message = "品规ID不能为空")
    private String materialSpecId;

    /** 耗材编码 */
    private String materialCode;


    /** 品名 */
    @NotBlank(message = "品名不能为空")
    @Length(min = 1, max = 100, message = "品名长度必须介于 1 和 100 之间")
    private String materialName;

    /** 品规 */
    @NotBlank(message = "品规不能为空")
    @Length(min = 1, max = 100, message = "品规长度必须介于 1 和 100 之间")
    private String materialSpec;

    /** 数量 */
    @NotNull(message = "数量不能为空")
    private Double qty;

    /** 单位 */
    @NotBlank(message = "单位不能为空")
    @Length(min = 1, max = 4, message = "单位长度必须介于 1 和 4 之间")
    private String unit;

    /** 单价(元) */
    @NotNull(message = "单价(元)不能为空")
    private Double price;

    /** 厂商ID */
    @NotNull(message="厂商ID不能为空")
    private String manufacturerId;

    /** 厂商名称 */
    @NotBlank(message="厂商名称不能为空")
    @Length(min=1, max=100, message="厂商名称长度必须介于 1 和 100 之间")
    private String manufacturerName;

}
